package viqiang.com.mp01quickStart.pojo.ar;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


/**
 * 创建 User 实体类：实体类的字段最好使用包装类型，而不要使用基本类型。
 * 因为每个基本类型都有一个默认值，在查询的时候，就不好区分是数据库记录的值，还是字段的默认值。但是包装类型没有，
 * 如果没有为包装类型设置值，那么其值为 null
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("a_user")
public class User extends Model<User> {

    /**
     * MybatisPlus 会默认使用实体类的字段名到数据库表中找对应的列（默认开启驼峰命名规则），但实体类的类名与数据库表明不一致时，
     * 需要使用 @TableField 注解标注实体类对应的数据库表名
     */

    /**
     * 当我们没有设置主键类型时，MybatisPlus 会帮我们注册自动填充插件进行填充。如果想要设置主键自增，需要使用 `@TableId(type = IdType.AUTO)` 注解标识主键字段
     */
    @TableId(type = IdType.AUTO)
    private Long id;


    private String name;
    private Integer age;
    private String email;

}
